<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 1.两数之和
        给定一个整数数组 nums 和一个整数目标值 target，请你在该数组中找出 和为目标值 target  的那 两个 整数，并返回它们的数组下标。

        你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。

        你可以按任意顺序返回答案。

        示例 1：

        输入：nums = [2,7,11,15], target = 9
        输出：[0,1]
        解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1] 

        示例 2：

        输入：nums = [3,2,4], target = 6
        输出：[1,2]

        示例 3：

        输入：nums = [3,3], target = 6
        输出：[0,1]
     -->
    <script>
        var twoSum = function (nums, target) {
            // 利用map映射set(key,value)
            let map = new Map()
            for (let i = 0; i < nums.length; i++) {
                // has()表示是否存在
                if (map.has(target - nums[i])) {
                    console.log([map.get(target - nums[i]), i])
                }
                map.set(nums[i], i)
            }
        };
        twoSum([2, 7, 11, 15], 9)
    </script>
</body>

</html>